System and method for creation, processing and visualization of omni-directional images

ABSTRACT

A system and method for digitally rendering omni-directional images includes capturing images of a region 360 degrees about an origin point in a single plane, and assembling the images in a digital format to create a complete spherical image surrounding the origin point. The spherical image is projected onto faces of a cube surrounding the spherical image. Images which were projected on the faces of the cube may then be rendered to provide an omni-directional image.

BACKGROUND

[0001] 1. Technical Field

[0002] This disclosure relates to image creation processing and visualization and more particularly, to a system and method for providing digital images with a three dimensional perspective while eliminating distortions and reducing computation time.

[0003] 2. Description of the Related Art

[0004] Imaging systems which record real-world images and convert then to digital format are known in the art. These imaging systems employ a camera, such as a digital camera, to digitally render an image in a format compatible for use with computers. These digitally rendered images may then be stored, transferred (e.g., over the Internet) or otherwise manipulated by known techniques.

[0005] Systems known in art also provide for perspective imaging of three dimensional images in two dimensions, (e.g., rendered on a computer display). These systems, however, are often limited and may suffer from at least some of the following disadvantages:

[0006] 1. The systems are dedicated exclusively to orientating robots in a limited space;

[0007] 2. The visualization by a user consists only of views with rotation and rectilinear movement in a horizontal plane;

[0008] 3. Spherical images presented by the systems include distortions on the demarcation line between two of more images which are combined.

[0009] Therefore, a need exists for a system and method, which solves the problems and difficulties of the prior art and increases the capabilities of three dimensional visualization of digitally rendered images.

SUMMARY OF THE INVENTION

[0010] The creation, processing and visualization of omni-directional images system of the present invention, gathers two plane complementary images, preferably captured with a digital camera endowed with a fish-eye lens having a 180 degree FOV open angle. The system reforms the hemispherical images associated with the planar images taken by the fisheye lens, using specific laws of projection, corrects the radial and geometrical distortions as well as the color and light distortions and assembles the images into a complete spherical image, which is projected on a cube. Viewing of these images creates an impression of turning around in all the directions and of rectilinear movement in virtual space. The impression created is very similar to the human eye perception of the tri-dimensional space, and it permits continuously or a successive visualization of some three-dimensional images including specific details that a user may want to examine closer.

[0011] These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

[0012] This disclosure will present in detail the following description of preferred embodiments with reference to the following figures wherein:

[0013]FIG. 1 is a block/flow diagram for a system/method for creating omni-directional images in accordance with the present invention;

[0014]FIG. 2 is a structure of a planar fish-eye image with distortions taken with a wide opened angle of 180-degree field of view (FOV), two of these fish-eye images taken with 180 degree FOV in a plane include all the information for a spherical representation in accordance with the invention;

[0015]FIG. 3 shows a projection characteristic for the fish-eye lens image of FIG. 2 for providing an ideal equi-distance projection model in accordance with the invention;

[0016]FIG. 4 shows a reference system for a complete spherical image and a cube that the spherical image will be projected on in accordance with the present invention;

[0017]FIG. 5 shows a projection of the spherical image of FIG. 4 on the cube's surfaces along with attributes associated with on the spherical image in accordance with the present invention;

[0018]FIG. 6 is a block/flow diagram of a system/method for dynamically visualizing and exploring omni-directional images in accordance with the present invention;

[0019]FIG. 7 is a perspective view showing the generation of window showing a portion of the cube image needed for dynamic visualization and exploration of the cube image in accordance with the present invention;

[0020]FIG. 8 is an illustrative a perspective view showing the mapping of points onto a cube face in accordance with the present invention; and

[0021]FIG. 9 is block/flow diagram showing the removal of distortions in fisheye images in accordance with the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0022] The present invention provides a full unitary system capable of creating a complete spherical image using plane images to correct radial, geometrical, color and light distortions associated with formation of the spherical image. The omni-directional spherical image provided by the present invention provides the user with additional degrees of freedom, permitting the viewer to visualize rotation in a horizontal, vertical or any other axes plane, and to realize a rectilinear movement. The present invention permits visualization from all possible directions of a spherical image as well as eliminates distortions of hemispherical images. In addition, the system of the present invention permits the successive visualization of a logical chain of images. For example, in one application of the present invention a user may seamlessly walk between rooms in a virtual environment.

[0023] In one embodiment of the present invention two plane images of an environment are taken a 180 degrees field of view (FOV) to provide a full 360 degree image of the environment. The two plane images are preferably taken in a horizontal plane, both of them being created by a wide angle lens, such as a “fish-eye” lens (the fish-eye lens has a 180 degree FOV wide open angle) and a camera, such as a digital camera, although any camera may be employed and the images digitally rendered at a later time. The system is also able to remake the hemispherical images associated with the plane images by specific projection and correction laws to assemble the images in a complete spherical image and permitting the visualization of different parts of the complete image, creating the sensation to a viewer that the image permits viewing by rotation and rectilinear movement in all directions. Advantageously, the sensation is similar to human eye perception.

[0024] The present invention provides at least the following advantages. The present invention in its software form is compact, unitary and easy to transfer onto and between computers. The present invention creates a complete spherical image based on two plane images, and aides in the calibration of a digital camera working with a fish-eye lens in determining the radial correction parameters. The present invention is capable of filtering out geometrical distortions, light distortions and/or color distortions between images. The present invention is able to take images created at a given location and transmit the realized images over a distance via a network, such as the Internet, a local area network or any other network system. A complete visualization from all directions of different parts of the spherical image is provided, reproducing all the freedom degrees in a three-dimensional space. The present invention also provides optimization between calculation time and the image quality. The present invention permits the successive visualization of some omni-directional images having a frequency that is compatible to the human eye retina remanence (e.g., at least 3 images/second, and preferably greater than or equal to about 30 image/second) so that the result will be a continuous visualization.

[0025] It should be understood that the elements shown in the FIGS. may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in software on one or more appropriately programmed general purpose digital computers having a processor and memory and input/output interfaces. Referring now to the drawings in which like numerals represent the same or similar elements and initially to FIG. 1, a block/flow represents a system/method for creation, processing and visualization of omni-directional images in accordance with the present invention. In block 10, a camera 100, preferably a digital camera, is provided with a wide angle lens 102 for capturing a hemispherical image or portion thereof of a surrounding environment. In one particularly useful embodiment, the environment includes a room in a building or house, although other environments are also contemplated. Wide angle lens 102 may include a fish-eye lens, preferably a 180 degree field of view opened angle lens. Lens 102 may include a focal distance of, for example, 8 mm. Camera 100 is fixed on a tripod 104 or other support structure which permits a rotation of the camera in a horizontal plane (other rotational planes may also be employed). A scaled measurement device 106 or VERNIER may be employed to measure rotational angles and/or to restrict rotational motion. It is preferable that mount 104 is able to rotate camera 100 about the focal point of lens 102. Camera 100 is rotated in the selected plane of rotation. In a preferred embodiment, the capture of the two images is performed by capturing a first image and then rotating the camera in the selected (e.g., horizontal) plane by 180 degrees and capturing a second image. More images may be taken as well, however, two images will be illustratively described throughout this disclose, for simplicity.

[0026] In block 12, image information captured by camera 100 is stored numerically in two memory matrices of system 200, e.g., one matrix for each 180 degree image. System 200 preferably includes a computer system with memory and input/output interfaces. Camera 100 may be remotely located relative to system 200, and images may be transmitted to system 200 over a network, such as the Internet, satellite, wireless link, etc. The maximum dimension of the matrices corresponds to the best sensitivity/resolution desired or attainable by the fisheye images. In one example, the resolution is about 1400×700 dpi. In memory matrices, colors of pixels or points are stored as defined by the polar coordinates of the pixels of the image. The polar coordinates include the radius r and the angle θ (see e.g., FIG. 3). Every memory location stores, the color of the specified point expressed as a combination of the red, blue and green (RGB) colors. The representative of the information is preferably hexadecimal and each color has, for example, 256 color levels (0- absent, 255- total), each color level will have two memory cells reserved so that every memory word will be six memory cells long (two memory location for each color (RGB)). If brightness α of the point is considered, then more memory cells are needed (e.g., two additional memory cells and thus eight memory cells are employed). The image points are mapped to the matrices however distortions in the captured images need to be accounted for.

[0027] In FIG. 2, a plane fish-eye image is illustratively shown to indicate distortion in a three-dimensional space. Walls 302, ceiling 303 and floor 305 of a room include curved surfaces due to the wide angle (fish-eye lens) distortion. FIG. 2 is a planar projection 404 of a hemisphere captured by a camera with a fish-eye lens. Light in a hemisphere is captured by fish-eye lens 102 to permit mapping of the image to a planar projection 404. Points on the planar projection may be defined in polar coordinates r_(L) and the angle θ_(L) (See FIG. 3). The subscript L denotes dimensions in a circle of the same latitude.

[0028] Two planar projection images are obtained as described with reference to FIG. 1. The two images are offset by a 180-degree angle in a same rotation plane. These two images provide all the information of a three-dimensional space surrounding a camera but with geometrical distortions due to the lens. Even if the fisheye lens has a 180 degree wide open angle, its real angle is about 183 degrees and supplementary information will be represented as a halo that will be cut off from the image at the beginning of the process.

[0029] There are three types of distortions specific to the fisheye images:

[0030] 1. Radial distortions

[0031] 2. Geometrical distortions

[0032] 3. Brightness and color distortions.

[0033] Radial distortion are addressed below with reference to FIG. 1 block 13 and 14. The geometric distortions are reduced or eliminated in accordance with the present invention in block 10 of FIG. 1. FIG. 9 shows a block diagram for method steps for eliminating these distortions in accordance with the present invention.

[0034] In block 801, the radial distortions are removed preferably using the real equidistant pattern, as described herein below.

[0035] The geometrical distortions are caused by the difficulty of positioning the camera and the fisheye lens in a perfectly horizontal plane. In real situations, the fisheye image may be rotated slightly in relation to the horizontal plane. The geometrical distortions are also caused the difficulty of rotating the camera with exactly 180° when to get two fisheye images to make a complete image. A supplementary rotation in relation to the center axis of rotation may be needed. The geometrical distortions are caused by the distances in every fisheye image of areas placed at the circumference of the image which is also encountered in the repetitive image (overlap) which, should be removed when the entire omni-directional image is formed.

[0036] The effect of these inherent errors in positioning the camera for each picture, include the following. The errors in the positioning on the horizontal plane (the camera may be tilted forward (backward) or sideways) cause the center of the (circular) fisheye image to be shifted away from the center of the window of the image to be taken. Consequently, the respective correction is needed by establishing of the center of the image (the inventors have noticed that errors of few pixels at the image level cause important deviations in assembling the fisheye images). The errors in the side-to-side tilt of the camera causes the two fisheye images not to assemble correctly and this would be very visible on the border lines of the two images. In addition, the failure to remove the repetitive areas in the two fisheye images leads to the presence of some repeated regions in the omni-directional image, as well as to the unpleasant presence of a (blue) shade.

[0037] Correcting the errors for these geometrical distortions may include the following measures:

[0038] 1. fixing the center of the fisheye image;

[0039] 2. automatically establishing the radial cutting degree of every fisheye image, as well as the rotation of one image to another for as precise a fitting as possible.

[0040] Geometrical distortions are accounted for in block 802, by determining the center of the fisheye image. Each fisheye image is enclosed in a black window (e.g., region 308 in FIG. 2). The center of the fisheye image may be different from the center of the window (the desired image to be taken). Since the entire mathematical equidistant pattern (for radial distortions) functions only with respect to the center of the image, the center needs to be determined accurately or fixed with a precision of, for example, one to two pixels. This action is made more difficult in that acquiring any fisheye image the side-light causes changes in the outline of the image in different areas of the image. Also, the lower part of the image (e.g., the part of the image closest to the camera mount or tripod) includes a dark color (close to black). These inconveniences are overcome with the help of the following actions in accordance with the present invention. These actions may include the following.

[0041] In block 805, filtering the fisheye image until, e.g., only two colors exist in the window, preferably, black and white. This underlines or highlights the outline of the fisheye image and removes the side-light effects. In block 807, the fisheye image may be covered with a larger number of rays (more light). The rays are considered from a center point inside which may represent the center of the image. In block 809, the center of the fisheye image is maintained as the point for which a number of equal rays is the largest (preferably with a precision of one or two pixels). In block 811, to increase the precision in determining the center of the fisheye image, the rays from the area of the two poles are avoided (north—superior or top of the image and south—inferior or bottom of the image), which, statistically, are the most disturbed. By performing the center of the image determination and the other steps. An image with reduced geometric distortion is provided.

[0042] In block 814, brightness and color distortions are resolved. This may include pixel averaging or other methods as described herein.

[0043] Referring to FIGS. 1 and 3, in block 13, each of the two images are converted into a hemispherical image 410, removing the geometrical distortions created by the lens, as described above with reference to FIG. 9. For radial distortions, the projection laws specific to the ideal model of equi-distance for the fisheye lens may include:

x_(L)=Cφ_(S)cosθ_(S)

y_(L)=Cφ_(S)sinθ_(S)   (1 )

[0044] where θ_(s) and φ_(s) are the spherical coordinates in the three-dimensional space, c is a scale factor depending on the focal distance of the objective and on the proper scaling of the image representation. Notice that:

θ_(L)=θ

{square root}{square root over (x _(L) ² +y _(L) ²)}=cφ _(s) =r _(L)   (2)

[0045] where r_(L) is the polar distance in a planar fish-eye image and θ_(L) is the angle of the fish-eye image. In other words, a circle on the fisheye image transforms to a circle of same latitude on the image hemisphere being projected.

[0046] In block 14, radial distortion is specific to this kind of lens. The characteristic difference from the linear dependence of equation (2) for the real model of the fisheye lens shows that:

r _(L) =c ₁φ_(s) +c ₂φ_(s) ³ +c ₃φ_(S) ⁵+  (3)

[0047] where c₁, c₂, C₃ are constants which directly depend on the physical realization or construction of the fish-eye lens. (other distortion equations are also contemplated). These parameters (c₁, c₂, c₃) account for the distortion of the lens. The lens can therefore be calibrated to determine these parameters or the distortion coefficients provided by the lens manufacturer. A model which includes up to the third term in the series of equation (3) is considered precise enough for the whole scale of fish-eye lens for purposes of this disclosure.

[0048] Parameters or coefficients (e.g., c₁, c₂, c₃) may be determined for the hemispherical model, using a procedure which provides global minimization of a performance index to reduce or eliminate radial distortion effects. Calibration of the lens may be performed one time, and therefore block 14 is optional if the lens distortion is known or has been previously calibrated. In one embodiment, at least three images, preferably four images (denoted by I_(i)) are taken with the fisheye lens at equal angles in a horizontal plane (e.g., 4 images at 90 degrees), so that there will be several overlapping zones (redundancy zones with about a 90 degree overlap) situated between the neighboring images (denoted by A_(ij)). The overlap provides redundant information so that the distortion parameters can be determined. The performance indices will be selected by practical type and based on the errors coming from the redundancy form, that means: $\begin{matrix} {{J_{ij} = {\left. {\frac{1}{A_{ij}}{\sum\limits_{x_{k} \in A_{ij}}ɛ_{k}^{2}}}\Rightarrow J \right. = {\sum\limits_{{\forall{({i,j})}}:{A_{ij} \neq 0}}J_{ij}}}}{ɛ_{k} = {\left\lbrack {{I_{i}\left( x_{k} \right)} + \alpha_{i}} \right\rbrack - \left\{ {{I_{j}\left\lbrack {T\left( {x_{k};p} \right)} \right\rbrack} + \alpha_{j}} \right\}}}} & (4) \end{matrix}$

[0049] where J_(ij) determines a square medium error between the images i and j at the overlapping level, p is the vector of the parameters (c₁, c₂, and c₃, the coefficients belonging to the real model of the fisheye objective (see equation (3)) and J is the entire index of performance to be minimized to obtain an image closest to the ideal model for the fish-eye lens. The relation of equation (4) includes a function T which denotes a transformation of connection between the i and j images. This may be determined by:

T(x _(k))=T ₃(T ₂(T ₁(x _(k))))   (5)

[0050] where T₁ (X_(k)) corresponds to the transformation of each point x_(k) of the plane image j at the corresponding point of the associated hemispherical image; in this direction, the models of equations (1), (2), and (3) will be exploited in an inverse order. Inverse functions Φ and arc tangent are employed as shown in equation (6).

φ_(S)=Φ(r;c₁, c₂, c₃)   (6)

[0051] ${\tan \quad \theta_{S}} = {\left. \frac{y_{S}}{x_{S}}\Rightarrow\theta_{S} \right. = {\arctan \left( \frac{y_{S}}{x_{S}} \right)}}$

[0052] A Newton-Raphson procedure or other numerical procedure may be needed to solve equation (6). The coordinates of the associated point on the sphere are

x_(S)=R sinφ_(S)cosθ_(S)

y_(S)=R sinφ_(S)sinθ_(S)

z_(S)=R cosφ_(S)   (7)

[0053] T₂ in equation (5) corresponds to rotation matrices (in a horizontal plane) between the image i and the image j;

[0054] T₃ in equation (5) corresponds to the hemispherical image j in the planar fish-eye projection image, according to the models of equations (1) and (3).

[0055] To establish the indices of performance error the color and light attributes of those points that are common for i and j images are used to determine overlap between the images.

[0056] In block 15, a complete spherical image is created by assembling two hemispheres and eliminating the redundant information on the limits of the fish-eye images. Care should be taken to realize correctly, the coincidence of the equal latitude lines of the hemispherical images. The convention described below may be used: $\phi_{S} \in \left. \left\lbrack {0,\frac{\pi}{2}} \right\rbrack\Rightarrow{{points}\quad {of}\quad {the}\quad {first}\quad {image}} \right.$

[0057] points of the first image $\begin{matrix} {\phi_{S} \in \left. \left. \left( {\frac{\pi}{2},\pi} \right. \right\rbrack\Rightarrow{{points}\quad {of}\quad {the}\quad {second}\quad {image}} \right.} & (8) \end{matrix}$

[0058] points of the second image (8)

[0059] The corrections that are performed, in block 15, include the removal the peripherical pieces of the plane fisheye images that are strongly distorted (the halo). This may be realized by cutting out of the images the external pieces having a coefficient of about, e.g., 98% from the image radius. The light between the two hemispherical images is corrected to ensure consistency in viewing. This may be performed by taking a mean value between parameters of the images (e.g., brightness, color, etc.) (see block 814 in FIG. 9). Corrections on the demarcation line between the two hemispherical images is performed. For this purpose, the color, brightness, contrast, etc. attributes of the pixels belonging to the limits (frontiers) of the neighboring images are mediated (average or mean value is employed). One hemispherical image may be employed as a reference image while the other hemispherical image is adjusted to reduce or eliminate the demarcation line. In a preferred embodiment, the mean value may be linearly interpolated over a band or group of pixels so that the color, brightness, etc. attributes of the pixels in a whole band are merged to hide or erase the demarcation line.

[0060] Alignment of the two hemispherical images may be performed by an alignment method. The alignment method includes the automatic determination of the radial cutting degree (the amount of the image to be cut off) of each fisheye image, as well as of the rotation of the image. In the framework of a computer program, a sub-program was created by the inventors which permits the successive cutting of a single row of pixels at a time from the image, followed by a rotation with respect to the z axis to move the images closer.

[0061] Lines, brightness, color or other criteria in the image give clues as to the orientation of the image. By determining the errors between pixels between the two images, (error functions are known in the art), an iterative process is performed to shift the rotation (after cutting a previous row of pixels) until a minimum is achieved for a threshold criteria based on the error between the pixels of the corresponding images situated on the circumference of the two fisheye images. The minimum achieved indicated the demarcation line at which the images are to be combined in an omni-directional image. In block 16, a complete spherical image is stored.

[0062] In block 17, a mapping of the spherical image on a cube's faces is performed. To simplify the relation, the present disclosure will consider a cube 502 directed to a spherical image 504 as illustratively presented in FIG. 4. A corresponding projection of image 504 is illustratively represented according to FIG. 5. In FIG. 5, each point P_(S) on the sphere image 504 is associated with and projected to a point P_(c) on cube 502 that will gather all the attributes of color, contrast and light of the point on the sphere 504 (the corresponding point in the initial fish-eye images). The correspondence is denoted by:

(x_(S), y_(S), z_(S))→(x_(C), y_(C), z_(C))   (9)

[0063] The image projection to a cube provides many advantages over the prior art as will described in greater detail below.

[0064] Returning to FIG. 1, block 18 includes a user interface, which may include a keypad, mouse, touch screen device, a speech recognition system or any other input device. In one embodiment, the user interface is employed with blocks 12-17 to control the mapping process. For example, a user may choose a pair of fisheye images that will be processed, fix the resolution for the cubical mapping images, filter the images (e.g., attaching the neighboring points of the images by the mean of color attributes, correct the light between the two hemispherical images, make corrections on the demarcation line between the two hemispherical images (e.g., blur), or perform other user controlled functions. Automation of any or all of these processes is also contemplated. Block 19 includes a display device which is employed in the creation, processing and visualization of images and is employed by a user to perform interfacing tasks, etc. in accordance with the description with reference to FIG. 1.

[0065] To obtain images of a given resolution and of a uniform density on the faces of the cube, in block 17, the exploitation of the previously described algorithm will be made on the inverse correspondence. That means exploitation of each face of the cube 504 with a given resolution (the resolution can be modified as desired by a user) on the two directions of the associated plane for that face of the cube is performed, where the current point is P_(C) (x_(C), x_(C), z_(C)) having known coordinates. P_(C) (x_(C), x_(C), z_(C)) will receive the color attributes of the correspondent point of the plane fish-eye image, previously taken. The point on the sphere corresponding to P_(C) is P_(S) (x_(S), y_(S), z_(S)) and P_(S) has polar coordinates:

R _(S) ={square root}{fraction (x_(C) ²+y_(C) ²+z_(C) ₂)}

[0066] ${\phi_{S} = \left. {\arctan \frac{z_{C}}{\sqrt{x_{C}^{2} + y_{C}^{2}}}}\Rightarrow{P_{S}\left( {x_{S},y_{S},z_{S}} \right)} \right.};$

θ_(S)=arc tan g(x _(C) +jy _(C)); j={square root}{square root over (−1)}  (10)

[0067] and these coordinates may be passed into Cartesian Coordinates with equation (5). The points of the fish-eye images that will be attached to P_(S) are P_(L) (r_(L), θ_(L)), having the polar coordinates:

r _(L) =c ₁φ_(S) +c ₂φ_(S) ³ +c ₃φ_(S) ⁵

θ_(L)=θ_(S)   (11)

[0068] Once P_(L)'S attributes are identified, P_(L)'S attributes are attached to P_(C). Using this procedure, the whole mapping on the cube operation is performed quickly and efficiently. Advantageously, the resolution of the mapping on the cube can be easily selected and changed. A uniform fisheye image projected to a cube may include areas of non-uniformity.

[0069] Referring to FIG. 8, in accordance with the present invention, the resolution on cube faces 702 is determined or selected by a user. Each face of the cube is divided with a step size chosen for each direction (e.g., x and y). The step size or spacings (shown illustratively as a grid 701 in FIG. 8) will determine the resolution of that face of the cube. As shown in FIG. 8, a point P_(C) on the cube may be selected based on the desired spacings (resolution) of grid lines of the cube face 702. A point P_(S) on the sphere 504 is determined in correspondence with P_(C). Using a reference point O (e.g., origin), P_(S) is identified for a point P_(L) from the fisheye lens image 703. Once P_(L) is identified attributes of the point are known, e.g., color, contrast, luminosity, brightness, etc. The fisheye image point is then attached to P_(C).

[0070] In some situations, P_(L) may not coincide with an image point of the fisheye image. In this situation the average or median value of attributes (e.g., color, contrast, luminosity, brightness, etc.) for surrounding or neighboring points may be employed and mapped to the cube face 701.

[0071] Referring to FIG. 6, a block/flow diagram of a visualization system 202 for cubical mapped images is illustratively shown in accordance with the invention. System 202 includes a program storage device and processor, such as a computer for providing visualization processing for a user. System 202 may be a remote personal computer system connected to a network 30, such as the Internet. Block 21 has access to the images lying on the faces of the cube as determined in block 17 of FIG. 1. Images of block 17 may be provided through the Internet, or other network, be stored within system 202 for visual rendering on display 19. From the images of block 17 of FIG. 1, rectangular pieces are rendered, in block 21, and submitted to visualization on a display or screen 19. Data may be presented for a rectangular piece 602, and illustratively shown in FIG. 7. In block 22, the vectors {right arrow over (P)}₀, {right arrow over (P)}₁, {right arrow over (P)}₂ are generated and will limit the rectangular area to be visualized (e.g., piece 602). The complete visualized surface is a current vector

{right arrow over (Q)}(u,v)={right arrow over (P)}₀ +u({right arrow over (P)}₁ ={right arrow over (P)} ₀)+v({right arrow over (P)}₂ ={right arrow over (P)} ₀); u ε[0,1], vε[0,1]  (12)

[0072] The current vector will cross the faces of the cube giving the user a perspective view. In accordance with the present invention, the user is able to view any area in the spherical region surrounding the origin O. The viewer can control the angles of rotation as indicated by arrows “A”, “B” and “C” by employing interface 18. Advantageously, the user can look upward, downward and side to side, 360 degrees in any direction. In this way, ceiling, floors, walls, etc. may be viewed in a room or environment.

[0073] Each resulting point in rectangular piece 602 will include the color and light attributes presented by the equation (9) (determined in FIG. 1) and stored in the block 23. Rotation in a horizontal plane and/or in a vertical plane, the {right arrow over (P)}₀, {right arrow over (P)}₁, {right arrow over (P)}₂ vectors permit visualization of all or part of pieces of the cube's faces. This creates a sensation of natural motion to the user turning to look around a room or other environment. For example, turning 2 “P” vectors around a third “P” vector, the effect of turning around on an axis is experienced. The user can also move into other rooms or areas by employing similar methods. For example, changing the open angles between the three vectors the effect of rectilinear movement is realized to the effect of getting nearer or moving away from the visualized image, such as a doorway. As a new room is entered the surrounding cube is updated for the new room to supply new information about the surrounding area.

[0074] To increase the visualization speed and to obtain a better image with a higher resolution, a visualization subsystem 25 may be included which directly employs specialized subroutines in triangle rastering. These subroutines may include specially developed routines or commercially available subroutines, such as for example, an open graphics library (OPENGL) program. The open graphics library program can be employed with cubical formulas only. Spherical systems of the prior art cannot employ open graphics library programs since only spherical systems are employed. The open graphic library program advantageously employs the same baleation functions (directions of viewing, e.g., right to left and up and down) as the triangles which produce the visualization window.

[0075] Mapping or rendering, e.g., on the faces of a cube, is compatible to such a triangle rastering visualization. As accelerated video cards have their own facilities of triangle rastering, this visualization subsystem 25 may be generated to specify the cube having the complete image on its faces and to specify the texture of the cube's faces, thus specifying the resolution too. The visualization place needs to be determined (by the way of its coordinates), e.g., the center of the cube. The part of the cube to be visualized is specified with the help of the visualization window situated inside the cube. The visualization window provides a perspective view of the faces of the cube. The visualization window is specified by points, e.g., P₁ (x₁, y₁, z₁) , P₂ (x₂, y₂, z₂) , P₃ (x₃, y₃, z₃), all of them being situated on the cube's faces. A fourth point considered here as an opposite to P₁ and has the coordinates: $\begin{matrix} {{P_{4}\left( {x_{4},y_{4},z_{4}} \right)}:\left\{ \begin{matrix} {x_{4} = {{- x_{1}} + x_{2} + x_{3}}} \\ {y_{4} = {{- y_{1}} + y_{2} + y_{3}}} \\ {z_{4} = {{- z_{1}} + z_{2} + z_{3}}} \end{matrix} \right.} & (13) \end{matrix}$

[0076] The points are taken close enough to the point of visualization so that visualization window remains inside the cube for all positions of the window.

[0077] In case a successive visualization of several images is desired (being in a logical sequence or chain of images) to be mapped on a cube. A “jumper point” is attached to every image so that as the “jumper point” is reached (activated), the current image is closed and a new image is opened to be visualized according to the above mentioned procedure. Jumper points may be employed in doorways or other areas between rooms, on objects within the rooms, for example, an object may be imaged which when approached (e.g., moving closer to it in virtual space) or clicked on will provide new images to open (e.g., a close up, etc.).

[0078] The creation processing and visualization omni-directional images system may be employed in a plurality of applications. For example, in a particular useful embodiment, the present invention may include images for a home or building to be sold by a real estate agent. The real estate agent stores wide angle photographs which can be downloaded and viewed by potential buyers over the Internet. A whole presentation of the indoor and the outside of some chalets, apartments, hotels, offices or houses for sale may be provided. This is possible be capturing the fish-eye images of all spaces that will be visualized and storing the images in a desired sequence. A virtual tour of the property is therefore realized where a person can walk in the front door and tour the building by moving through the building room by room with the capability of viewing walls ceiling and floors.

[0079] A real estate that has such a system will be able to offer to its clients full information on the objects for sale and to give them opportunity of visualizing the desired building exactly as if they would have visited it, with all the details. All the details includes woodwork, furniture view from windows and any other details present on the premises. Jump points may be placed on objects within the home to permit other images to be seen. For example, a picture or window may include a jump point which changes the resolution or opens a new image.

[0080] The present invention may be employed to make presentations of indoor or outdoor historical or architectural monuments. For example, tourist agencies or historic scenes may be preserved or presented to a user by software or Internet for personal amusement or as an educational tool. The present invention may be employed to make a full presentation of galleries or museums. The virtual visitor will have the feeling he is really moving through this works of art and will have the opportunity to make inquiries or learn detail about the objects or pictures on display. The present invention may be employed to capture three dimensional images of events or gatherings, e.g., a family gathering, sporting event, etc., to create virtual albums including complete images which can be dynamically visualized every time so that the user will really participate in the action in the visualized place. Some natural or artificial phenomena having a high level of danger or taking place in difficult access areas (e.g., outer space) may be mapped and visualized by the present invention.

[0081] Another aspect of the present invention employs real-time imaging. The present invention may employ a camera set up which is continuously updating images. In this way, the system is able to supervise continuously any area that needs special attention (e.g., commercial space, banks, museums, treasures). For this purpose, two fish-eye lenses connected located 180 degrees apart are needed, and the system of FIG. 1 will be used to continuously update images and convert the images for visualization (by the system of FIG. 7). In a preferred embodiment, the system can capture frames at a rate of about 30 frames per second. The frames can be processed and visualized but the user will have to accept a poorer quality of the images unless higher processing rates are achieved.

[0082] Other applications of the present invention may include supervising and recording the access of persons in private houses or public institutions, miniaturizing the fish-eye lens to provide a system which can be employed in the medical field to visualize internal organs to improve diagnosis. The system of the present invention may be inserted into other systems able to create virtual realities on educational purposes or simply for fun or it may be used as a training tool for training of pilots, astronauts and navy personnel, etc. Many other uses and applications may be realized by the present invention.

[0083] Having described preferred embodiments for a novel system and method for creation, processing and visualization of omni-directional images (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments of the invention disclosed which are within the scope and spirit of the invention as outlined by the appended claims. Having thus described the invention with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims. 

What is claimed is:
 1. A method for digitally rendering omni-directional images comprising the steps of: capturing images surrounding an origin point in a at least two hemispheres surrounding the origin point; assembling the images in a digital format to create a complete spherical image surrounding the origin point; projecting the spherical image onto faces of a to cube surrounding the spherical image; and storing images projected on the faces of the cube to provide an omni-directional image.
 2. The method as recited in claim 1, wherein the step of assembling the images in a digital format includes the step of transferring two planar fish-eye images to hemispherical images while removing distortions in the planar fish-eye images.
 3. The method as recited in claim 1, wherein the step of assembling the images in the digital format includes the step of removing a demarcation line between the images in the digital format by averaging color and brightness characteristics between the images in the digital format.
 4. The method as recited in claim 1, wherein the step of assembling the images in the digital format includes the step of removing a demarcation line between the images in the digital format by employing an error function between pixels of the images.
 5. The method as recited in claim 1, wherein the images are taken with a fish-eye lens and further comprising the step of removing a demarcation line by removing pixels from the images in the digital format.
 6. The method as recited in claim 1, wherein the step of projecting the spherical image onto faces of a cube surrounding the spherical image includes the step of providing a uniform resolution on a whole surface the cube.
 7. The method as recited in claim 1, wherein the step of projecting the spherical image onto faces of a cube surrounding the spherical image includes the step of changing a resolution of the image projected on the cube.
 8. The method as recited in claim 1, further comprising the step of displaying a portion of the image projected on the cube.
 9. The method as recited in claim 8, wherein the step of displaying includes the step of resealing the image projected on the cube to provide a visualized image that creates a sensation of rectilinear movement in the visualized image.
 10. The method as recited in claim 1, further comprising the step of dynamically exploring at least portions of a complete image projected on the faces of the cube.
 11. The method as recited in claim 10, wherein the step of dynamically exploring includes providing rotations and translations in all degrees of freedom to permit exploring of the cube in a three-dimensional space.
 12. The method as recited in claim 1, further comprising the step of transferring from one omni-directional image to another.
 13. The method as recited in claim 1, wherein the images are captured by a fish-eye lens and further comprising the step of calibrating the fish-eye lens to determine radial distortion coefficients for determining specific distortions of the lens.
 14. The method as recited in claim 1, further comprising the step of providing a user interface to permit manipulation of a displayed portion of the omni-directional image.
 15. The method as recited in claim 1, further comprising the step of determining a center of the image to eliminate geometric distortions.
 16. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps as recited in claim
 1. 17. A method for digitally rendering omni-directional images comprising the steps of: capturing two fish-eye images, the fish-eye images being taken 180 degrees apart with respect to a plane from an origin point; converting the two fish-eye images to a digital format; assembling the two fish-eye images in the digital format to create a spherical image surrounding the origin point; projecting the spherical image onto faces of a cube surrounding the spherical image; storing images projected on the faces of the cube; and transferring a portion of the images projected on the faces of the cube to provide an omni-directional image to for visualization.
 18. The method as recited in claim 17, wherein the step of converting the two fish-eye images to a digital format includes the step of transferring planar fish-eye images to a hemispherical image to remove distortions.
 19. The method as recited in claim 17, wherein the step of assembling the two fish-eye images in the digital format to create a spherical image surrounding the origin point includes the step of removing a demarcation line between the two fish-eye images in the digital format by averaging color and brightness characteristics between the two fish-eye images in the digital format.
 20. The method as recited in claim 19, wherein the step of removing a demarcation line includes removing halo regions from the two fish-eye images in the digital format.
 21. The method as recited in claim 17, wherein the step of projecting the spherical image onto faces of a cube surrounding the spherical image includes the step of providing a uniform resolution on a whole surface the cube.
 22. The method as recited in claim 17, further comprising the step of changing a resolution of the omni-directional image projected on the cube.
 23. The method as recited in claim 17, further comprising the step of resealing the omni-directional image projected on the cube to provide a visualized image that creates a sensation of rectilinear movement in the visualized image.
 24. The method as recited in claim 17, further comprising the step of dynamically exploring at least portions of the omni-directional image on the faces of the cube.
 25. The method as recited in claim 24, wherein the step of dynamically exploring includes providing rotations and translations in all degrees of freedom to permit exploring of the cube in a three-dimensional space.
 26. The method as recited in claim 17, wherein the step of transferring a portion of the images includes the step of transferring from one omni-directional image to another.
 27. The method as recited in claim 17, further comprising the step of calibrating the fish-eye lens to determine radial distortion coefficients for determining specific distortions of the lens.
 28. The method as recited in claim 17, wherein the step of assembling the two fish-eye images includes the step of removing a demarcation line between the images in the digital format by employing an error function between pixels of the images.
 29. The method as recited in claim 17, further comprising the step of determining a center of the image to eliminate geometric distortions.
 30. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps as recited in claim
 17. 31. A system for digitally rendering omni-directional images, comprising: a computer device which receives digital images of a spherical region about an origin point; the computer device including a program storage device readable by the computer device, tangibly embodying a program of instructions executable by the computer device to: assemble the images to create a complete spherical image surrounding the origin point; and project the spherical image onto faces of a cube which surrounds the spherical image; and a display coupled to the computer device for displaying an omni-directional image mapped on the faces of the cube such that an entire surface of the cube is capable of being explored.
 32. The system as recited in claim 31, further comprising a user interface to permit manipulation of a displayed portion of the omni-directional image.
 33. The system as recited in claim 32, wherein the user interface permits resealing of the image projected on the cube to provide a visualized image that creates a sensation of rectilinear movement in the visualized image.
 34. The system as recited in claim 32, wherein the user interface permits dynamical exploration of at least portions of a complete image projected on the faces of the cube.
 35. The system as recited in claim 31, wherein the manipulation of a displayed portion of the omni-directional image includes rotation and rectilinear motion in all directions.
 36. The system as recited in claim 31, further comprising a camera including a fish-eye lens which captures two images encompassing a sphere surrounding the origin point.
 37. The system as recited in claim 31, wherein the program storage device stores color and brightness for points in the images.
 38. The system as recited in claim 31, wherein the faces of the cube include a uniform resolution on a whole surface the cube.
 39. The system as recited in claim 31, wherein the system permits rotations and translations of the displayed image in all degrees of freedom to permit exploring of the cube in a three-dimensional space.
 40. The system as recited in claim 31, wherein the system permits a transfer from one omni-directional image to another. 